<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 1.地址栏数据转对象--https://www.baidu.com?a=1&b=2&c=3&d=4
    // {a:1,b:2,c:3,d:4}
    // var obj = {};
    // var str = 'https://www.baidu.com?a=1&b=2&c=3&d=4';
    // console.log(str.substring(str.indexOf('?'))); //?a=1&b=2&c=3&d=4
    // console.log(str.substring(str.indexOf('?') + 1)); //a=1&b=2&c=3&d=4
    // str = str.substring(str.indexOf('?') + 1); //a=1&b=2&c=3&d=4
    // console.log(str.split('&')); // ["a=1", "b=2", "c=3", "d=4"]
    // var strarr = str.split('&');
    // strarr.map(function(value) {
    //     var newarr = value.split('='); //[a,1]
    //     obj[newarr[0]] = +newarr[1];
    // });
    // console.log(obj); //{a: 1, b: 2, c: 3, d: 4}

    //正则操作

    // str = str.substring(str.indexOf('?') + 1); //a=1&b=2&c=3&d=4
    // console.log(str.replace(/&/g, ',')); //a=1,b=2,c=3,d=4
    // console.log(str.replace(/&/g, ',').replace(/=/g, ':')); //a:1,b:2,c:3,d:4
    // console.log(eval('({' + str.replace(/&/g, ',').replace(/=/g, ':') + '})'));

    // 2.eval(str):js内置的函数，解析括号里面的字符串，括号里面的字符串当做js代码执行。
    // eval('alert("hello")');
    // eval('var a=1;var b=2;alert(a+b);');
    // console.log(eval('{}')); //undefined
    // console.log(eval('{a:1}')); //1
    // console.log(eval('{a:1,b:2}')); //报错，js无法解析里面的代码。
    // eval('(console.log(123))');


    // console.log(eval('{}')); //undefined
    // console.log(eval('({})')); //{} 添加括号的目的，希望不要解析里面的代码，将其当成一个整体。除非内部的字符串存在一些输出。
    //如果你需要将一个对象格式的字符串转换成对象，可以添加括号的方式进行转换。
    // console.log(eval('({})'));
    // console.log(eval('({a:1,b:2})'));
    // console.log({
    //     a: 1,
    //     b: 2
    // });
    // console.log('{a:1,b:2}');

    //案例：
    // var data = '["zhangsan","lisi","wangwu"]';
    // var data1 = '{name:"zhangsan",age:100,sex:"男"}';
    // console.log(data);
    // console.log(data1);
    // data = eval('(' + data + ')');
    // data1 = eval('(' + data1 + ')');
    // console.log(data);
    // console.log(data1);
    // console.log(data[1]); //lisi
    // console.log(data1.name); //zhangsan
</script>